Members of the transportation industry contract with their customers to ship goods by truck, rail, ship, plane or other forms of transportation. Some transportation companies, such as Federal Express, may not have written contracts with small volume customers or individuals. On the other hand, Federal Express may have a written contract with special pricing and/or volume discounts for a larger customer, such as General Motors. Truckload carriers, such as Schneider National Carriers, Inc. often sign written contracts with customers that regularly ship large quantities of goods. These contracts will ordinarily specify whether a carrier will transport a load from one location to another, the conditions under which such transportation can occur, the price for such transportation, and the price for additional services associated with that particular shipment.
Accordingly, a particular contract between a carrier and a customer contains (1) qualifications that must be met for a shipment to occur pursuant to the contract, and (2) price terms for shipments that meet the qualifications for use of that contract. The term "contract" is meant to be broadly interpreted and may, but does not necessarily, refer to a single written contract between a carrier and a customer. A single written contract might contain several different sets of qualifications with a unique set of prices associated with each set of qualifications. A written contract between a carrier and a customer might contain multiple contracts as described here, or a contract may be the combination of multiple written contracts between the carrier and customer.
The qualifications associated with a particular contract limit the types of shipments allowed under the contract. Qualifications associated with a contract also specify the conditions under which particular prices for services provided pursuant to the contract apply. Examples of qualifications include, but are not limited to, equipment type, freight class, service type, weight, transportation mode, contract type, product class, product identification number, etc.
Contracts also include prices for services associated with shipments meeting the qualifications of the contract and provided pursuant to the contract. One type of service often provided pursuant to a particular contract is linehaul service. A linehaul rate comprises the price charged to move a particular shipment between two points. Contracts often include prices for services provided other than linehaul service. Examples of such services include hand unload, stopoffs, tarps, warehouse service, etc. A table of example services is provided below.
A particular carrier may have many contracts with a given customer. These contracts will typically have different qualifications associated with them. For example, a particular carrier may have separate contracts with a customer for each of the following types of services: flatbed service, truckload service, less than truckload service, truckrail service and refrigerated trailer service. A carrier and customer may also have multiple contracts for a particular type of service. For example, a carrier and customer may have different contracts for less than truckload service based upon the freight class of the goods being shipped. In addition, the prices charged various customers may vary depending upon the volume of business conducted. In summary, a customer may have many different contracts with a particular carrier and a particular carrier may have many contracts with different customers for the same or similar services.
Customers may also have multiple contracts with many different carriers. Customers shipping a large amount of goods may exceed the shipping capacity of even several carriers combined. Certain carriers may only ship goods within certain regions, necessitating contracts between a customer and multiple carriers. In addition, a customer may desire to have contracts with multiple carriers in order to induce greater price competition. The term contract is also meant to broadly refer to shipments pursuant to a tariff, circular, or other type document.
Because both customers and carriers may maintain a large number of contracts, management of these contracts presents additional difficulties. To simplify this management task, customers, carriers, and logistics companies have employed computer software to calculate the price for a given shipment and to generate orders, bills, checks, and electronic payment for the shipment. Customers holding contracts with multiple carriers may use such software to compare prices available for a particular shipment so that the customer pays the lowest price for the shipment. This function is normally referred to as best rate lookup.
Some existing systems capable of calculating the price of a given shipment (rating) employ relational databases to store the data necessary to calculate a price. Unfortunately, each contract may include a large amount of price data, date ranges for which the price data is valid, and qualifications specifying the conditions under which such prices are applicable. Due to the many possible qualifications and date restrictions, these relational databases contain a large number of keys used to search the database. Although such keys are not considered to be redundant data in a relational database, the reality is that data ends up being replicated many times for use as a key for searching the database.
The use of relational databases for performing rating has a number of disadvantages. The large amount of redundant data resulting from the large number of keys in the database causes a substantial increase in storage requirements. Because the database is large, access times to retrieve the relevant data are relatively slow. Locating the relevant data in the database can take an unreasonable amount of time compared to the needs of many businesses utilizing such software.
Relational databases cause performance problems as well. A substantial amount of time is wasted in such systems searching for price data that turns out to be unusable because the qualifications for use of the price data are not met. To determine that the price data is unusable, the data must still be located in the database. After locating the data, all of the relevant qualifications are matched against the rating request and if a particular condition is not met, then all of the time locating the relevant data has been wasted.
Performance problems are magnified when a customer or logistics company desires to perform optimization. Optimization requires the performance of even more calculation as the software must compute the price charged by multiple carriers for a particular shipment.